package cn.zn.flowTemplate.service;

import cn.hutool.json.JSONObject;
import cn.zn.flowTemplate.entity.SysFlowTemplate;
import cn.zn.flowTemplate.vo.SysFlowTemplateEditVo;
import cn.zn.flowTemplate.vo.SysFlowTemplatePageVo;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * <p>
 * 服务类
 * </p>
 *
 * @author zn-admin
 * @since 2021-05-31
 */
public interface SysFlowTemplateService extends IService<SysFlowTemplate> {

    /**
     * 根据条件分页查询流程模板
     *
     * @param vo 模板
     * @return 结果
     */
    Object selectFlowTemplateList(SysFlowTemplatePageVo vo);

    /**
     * 新增保存流程模板信息
     *
     * @param vo 流程模板信息
     * @return 结果
     */
    void insertFlowTemplate(SysFlowTemplateEditVo vo);

    /**
     * 修改保存流程模板信息
     *
     * @param vo 流程模板信息
     * @return 结果
     */
    void updateFlowTemplate(String id, SysFlowTemplateEditVo vo);

    /**
     * 获取所有表名
     *
     * @return 结果
     */
    List<String> selectAllTables();

    /**
     * 获取所有表字段
     *
     * @return 结果
     */
    List<JSONObject> selectAllColumnsByTable(String table);

    /**
     * 详情
     *
     * @param id id
     * @return 结果
     */
    SysFlowTemplate selectFlowTemplateInfo(String id);

    /**
     * 详情
     *
     * @param code id
     * @return 结果
     */
    SysFlowTemplate selectFlowTemplateInfo(String code, String corpId);

    /**
     * 批量删除
     *
     * @param ids id
     * @return 结果
     */
    void deleteFlowTemplateByIds(String[] ids);

    /**
     * 修改状态
     *
     * @param vo 状态
     */
    void updateFlowTemplateStatus(String id, SysFlowTemplateEditVo vo);

}
